(mm-mime-mule-charset-alist)
authorDave Love <fx@gnu.org>
Wed, 31 Jan 2001 18:36:54 +0000 (18:36 +0000)
committerDave Love <fx@gnu.org>
Wed, 31 Jan 2001 18:36:54 +0000 (18:36 +0000)
(mm-find-mime-charset-region): Consider mule-utf-8.

lisp/gnus/mm-util.el

index 0194e35a3abed88e41a0939441b7a4fb7d850b06..196d1d0039d36d8d81485d368ad4227bc4649ac5 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mm-util.el --- Utility functions for MIME things
-;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -28,7 +28,7 @@
 (require 'mail-prsvr)
 
 (defvar mm-mime-mule-charset-alist
-  '((us-ascii ascii)
+  `((us-ascii ascii)
     (iso-8859-1 latin-iso8859-1)
     (iso-8859-2 latin-iso8859-2)
     (iso-8859-3 latin-iso8859-3)
                    chinese-cns11643-3 chinese-cns11643-4
                    chinese-cns11643-5 chinese-cns11643-6
                    chinese-cns11643-7)
-    (utf-8 unicode-a unicode-b unicode-c unicode-d unicode-e))
+    ,(if (or (charsetp 'unicode-a)
+            (not (coding-system-p 'mule-utf-8)))
+        '(utf-8 unicode-a unicode-b unicode-c unicode-d unicode-e)
+       ;; If we have utf-8 we're in Mule 5+.
+       (delete 'ascii (coding-system-get 'mule-utf-8 'safe-charsets))))
   "Alist of MIME-charset/MULE-charsets.")
 
 (eval-and-compile
@@ -293,6 +297,7 @@ If the charset is `composition', return the actual one."
                 (setq mail-parse-mule-charset
                       (or (car (last (assq mail-parse-charset
                                            mm-mime-mule-charset-alist)))
+                          ;; Fixme: don't fix that!
                           'latin-iso8859-1)))
             mail-parse-mule-charset)))))))
 
@@ -329,7 +334,8 @@ If the charset is `composition', return the actual one."
     (setq charsets (mm-delete-duplicates charsets))
     (if (and (> (length charsets) 1)
             (fboundp 'find-coding-systems-region)
-            (memq 'utf-8 (find-coding-systems-region b e)))
+            (let ((cs (find-coding-systems-region b e)))
+              (or (memq 'utf-8 cs) (memq 'mule-utf-8 cs))))
        '(utf-8)
       charsets)))